package com.seedwill.common.model;

import java.util.Map;

/**
 * 组合对象元数据
 * 
 * @author kdyi
 *
 */
public class CompositeObjectSchema {
	
	/**
	 * 组装对象shema id
	 */
	private String schemaId;
	
	/**
	 * 类型名称
	 */
	private String hostName;

	/**
	 * 类型
	 */
	private Class hostType;
	/**
	 * 标识属性名称
	 */
	private String hostIdName;
	
	/**
	 * 外键标识名称
	 */
	private String foreignIdName;
	//composite_child, form_child
	//property_child
	/**
	 * 作为子实体模式
	 */
	private String asChildMode = "composite_child";
	
	/**
	 * 作为子实体数据源
	 */
	private String asChildDataSource;
	
	/**
	 * 作为property_child模式的标识
	 */
	private String asPropertyLabelIdt;
	/**
	 * 作为property_child模式的名称
	 */
	private String asPropertyLabelName;
	/**
	 * 作为property_child模式的Schema
	 */
	private String asPropertyLabelSchemaCode;
	/**
	 * 子对象元数据
	 */
	private Map<String, CompositeObjectSchema> childrenSchema;

	public String getHostName() {
		return hostName;
	}

	public void setHostName(String hostName) {
		this.hostName = hostName;
	}

	public Class getHostType() {
		return hostType;
	}

	public void setHostType(Class hostType) {
		this.hostType = hostType;
	}

	public String getHostIdName() {
		return hostIdName;
	}

	public void setHostIdName(String hostIdName) {
		this.hostIdName = hostIdName;
	}

	public String getForeignIdName() {
		return foreignIdName;
	}

	public void setForeignIdName(String foreignIdName) {
		this.foreignIdName = foreignIdName;
	}

	public Map<String, CompositeObjectSchema> getChildrenSchema() {
		return childrenSchema;
	}

	public void setChildrenSchema(Map<String, CompositeObjectSchema> childrenSchema) {
		this.childrenSchema = childrenSchema;
	}

	public String getSchemaId() {
		return schemaId;
	}

	public void setSchemaId(String schemaId) {
		this.schemaId = schemaId;
	}

	public String getAsChildMode() {
		return asChildMode;
	}

	public void setAsChildMode(String mode) {
		this.asChildMode = mode;
	}

	public String getAsChildDataSource() {
		return asChildDataSource;
	}

	public void setAsChildDataSource(String asChildDataSource) {
		this.asChildDataSource = asChildDataSource;
	}

	public String getAsPropertyLabelIdt() {
		return asPropertyLabelIdt;
	}

	public void setAsPropertyLabelIdt(String asPropertyLabelIdt) {
		this.asPropertyLabelIdt = asPropertyLabelIdt;
	}

	public String getAsPropertyLabelName() {
		return asPropertyLabelName;
	}

	public void setAsPropertyLabelName(String asPropertyLabelName) {
		this.asPropertyLabelName = asPropertyLabelName;
	}

	public String getAsPropertyLabelSchemaCode() {
		return asPropertyLabelSchemaCode;
	}

	public void setAsPropertyLabelSchemaCode(String asPropertyLabelSchemaCode) {
		this.asPropertyLabelSchemaCode = asPropertyLabelSchemaCode;
	}
	
}
